Monitoring Electrode Voltages In An Implantable Medical Device System Having Daisy-Chained Electrode-Driver Integrated Circuits

ABSTRACT

Electrode voltage monitoring circuitry for an implantable neurostimulator system having a plurality of electrode-driver integrated circuits (ICs) in provided. Electrodes from either or both ICs can be chosen to provide stimulation, and one of the IC acts as the master while the other acts as the slave. Electrodes voltages on the slave IC are routed to the master IC, and thus the master IC can monitor both electrode voltages on the slave as well as electrode voltages on the master. Such voltages can be monitored for a variety of purposes, and in particular use of such voltage is disclosed for determining the resistance between electrodes and to set a compliance voltage for stimulation.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.14/292,182, filed May 30, 2014 (now U.S. Pat. No. 9,095,726), which is acontinuation of U.S. patent application Ser. No. 13/237,531, filed Sep.20, 2011 (now U.S. Pat. No. 8,768,453), which is a non-provisionalapplication of U.S. Patent Application Ser. No. 61/392,587, filed Oct.13, 2010. Priority is claimed to these applications, and they areincorporated herein by reference in their entireties.

This application is also related to U.S. Patent Application Ser. Nos.61/392,594 and 61/392,600, both filed Oct. 13, 2010, which are bothincorporated herein by reference their entireties.

FIELD OF THE INVENTION

The present invention relates generally to implantable medical devices,and more particularly to improved architectures for an implantableneurostimulator utilizing a plurality of electrode-driver integratedcircuits.

BACKGROUND

Implantable neurostimulator devices are devices that generate anddeliver electrical stimuli to body nerves and tissues for the therapy ofvarious biological disorders, such as pacemakers to treat cardiacarrhythmia, defibrillators to treat cardiac fibrillation, cochlearstimulators to treat deafness, retinal stimulators to treat blindness,muscle stimulators to produce coordinated limb movement, spinal cordstimulators to treat chronic pain, cortical and deep brain stimulatorsto treat motor and psychological disorders, and other neural stimulatorsto treat urinary incontinence, sleep apnea, shoulder subluxation, etc.The description that follows will generally focus on the use of theinvention within a Spinal Cord Stimulation (SCS) system, such as thatdisclosed in U.S. Pat. No. 6,516,227. However, the present invention mayfind applicability in any implantable neurostimulator.

As shown in FIGS. 1A and 1B, a SCS system typically includes anImplantable Pulse Generator (IPG) 100, which includes a biocompatibledevice case 30 formed of a conductive material such as titanium forexample. The case 30 typically holds the circuitry and battery 26necessary for the IPG to function, although IPGs can also be powered viaexternal RF energy and without a battery. The IPG 100 includes one ormore electrode arrays (two such arrays 102 and 104 are shown), eachcontaining several electrodes 106. The electrodes 106 are carried on aflexible body 108, which also houses the individual electrode leads 112and 114 coupled to each electrode. In the illustrated embodiment, thereare eight electrodes on array 102, labeled E₁-E₈, and eight electrodeson array 104, labeled E₉-E₁₆, although the number of arrays andelectrodes is application specific and therefore can vary. The arrays102, 104 couple to the IPG 100 using lead connectors 38 a and 38 b,which are fixed in a non-conductive header material 36, which cancomprise an epoxy for example.

As shown in FIG. 2, the IPG 100 typically includes an electronicsubstrate assembly 14 including a printed circuit board (PCB) 16, alongwith various electronic components 20, such as microprocessors,integrated circuits, and capacitors mounted to the PCB 16. Two coils(more generally, antennas) are generally present in the IPG 100: atelemetry coil 13 used to transmit/receive data to/from an externalcontroller 12; and a charging coil 18 for charging or recharging theIPG's battery 26 using an external charger 50. The telemetry coil 13 istypically mounted within the header 36 of the IPG 100 as shown, and maybe wrapped around a ferrite core 13′.

As just noted, an external controller 12, such as a hand-held programmeror a clinician's programmer, is used to wirelessly send data to andreceive data from the IPG 100. For example, the external controller 12can send programming data to the IPG 100 to dictate the therapy the IPG100 will provide to the patient. Also, the external controller 12 canact as a receiver of data from the IPG 100, such as various datareporting on the IPG's status. The external controller 12, like the IPG100, also contains a PCB 70 on which electronic components 72 are placedto control operation of the external controller 12. A user interface 74similar to that used for a computer, cell phone, or other hand heldelectronic device, and including touchable buttons and a display forexample, allows a patient or clinician to operate the externalcontroller 12. The communication of data to and from the externalcontroller 12 is enabled by a coil (antenna) 17.

The external charger 50, also typically a hand-held device, is used towirelessly convey power to the IPG 100, which power can be used torecharge the IPG's battery 26. The transfer of power from the externalcharger 50 is enabled by a coil (antenna) 17′. The external charger 50is depicted as having a similar construction to the external controller12, but in reality they will differ in accordance with theirfunctionalities as one skilled in the art will appreciate.

Wireless data telemetry and power transfer between the external devices12 and 50 and the IPG 100 takes place via inductive coupling, andspecifically magnetic inductive coupling. To implement suchfunctionality, both the IPG 100 and the external devices 12 and 50 havecoils which act together as a pair. In case of the external controller12, the relevant pair of coils comprises coil 17 from the controller andcoil 13 from the IPG 100. In case of the external charger 50, therelevant pair of coils comprises coil 17′ from the charger and coil 18from the IPG 100. As is well known, inductive transmission of data orpower can occur transcutaneously, i.e., through the patient's tissue 25,making it particularly useful in a medical implantable device system.During the transmission of data or power, the coils 17 and 13, or 17′and 18, preferably lie in planes that are parallel, along collinearaxes, and with the coils as close as possible to each other. Such anorientation between the coils 17 and 13 will generally improve thecoupling between them, but deviation from ideal orientations can stillresult in suitably reliable data or power transfer.

U.S. Patent Application Publication 2008/0319497 (“the '497application”), owned by the present assignee and which is incorporatedherein by reference in its entirety, discloses an improved architecture150 for an IPG 100, which is shown in FIGS. 3A-3C. Because of itspertinence to the present disclosure, some time is spent discussingpertinent aspects of the '497 application's architecture.

The improved IPG architecture 150 of FIG. 3A involves integration ofvarious IPG functional circuit blocks on a single integrated circuit(IC) 200 via a bus 190 governed by a communication protocol, discussedfurther below. The centralized bus 190 is a parallel bus containing aplurality of multiplexed address and data lines operating in parallel.However, this is not strictly necessary, and instead bus 190 cancomprise a serial bus as well. To communicate with the bus 190 and toadhere to the protocol, each circuit block includes bus interfacecircuitry 215 adherent with that protocol. Because each circuit blockcomplies with the protocol, any given circuit block can easily bemodified or upgraded without affecting the design of the other blocks,facilitating debugging and upgrading of the IPG circuitry. Moreover,because the centralized bus 190 can be taken off the integrated circuit,extra circuitry can easily be added off chip to modify or addfunctionality to the IPG, a point discussed further below.

Each of the circuit blocks performs standard functions in an IPG. Forexample, telemetry block 62 couples to the IPG telemetry coil 13, andincludes transceiver circuitry for communicating with the externalcontroller 12 (FIG. 2). The charging/protection block 64 couples to theIPG charging coil 18, and contains circuitry for rectifying powerreceived from the external charger 50 (FIG. 2), and for charging thepower source (battery) 26 in a controlled fashion. Stimulation circuitblock 175 is coupled to the electrodes E1-E16 and includes circuitry forsetting the program (magnitude, and polarity) for the stimulation pulsesappearing at those electrodes. Block 175 also includes the drivers forthe electrodes, with a Digital-to-Analog Converter (DAC) 82 beingresponsive to the stimulation program to supply the specified electrodescurrents. Notice that the electrodes E1-E16 are connected to off-chipdecoupling capacitors C1-CN prior to connection to the correspondingelectrodes 106 on the leads 102 and 104 (FIG. 1A); such decouplingcapacitors C1-CN prevents direct DC current injection from the IPG intothe patient, which is advisable for safety, but otherwise suchdecoupling capacitors don't effect stimulation performance. EPROM block177 caches any relevant data in the system (such as log data), andadditional memory 66 can also be provided off-chip via a serialinterface block 167. Analog-to-Digital (A/D) block 74 digitizes variousanalog signals for interpretation by the IPG 100, such as the batteryvoltage Vbat or voltages appearing at the electrodes, and is coupled toan analog bus 192 containing such voltages. Interrupt controller block173 receives various interrupts from other circuit blocks, which becauseof their immediate importance are received independent of the bus 190and its communication protocol. Note that because it handles both analogand digital signals, IC 200 comprises a mixed mode chip.

Stimulation circuit block 175 is coupled to the electrodes E1-E16 andincludes circuitry for setting the program (magnitude, and polarity) forthe stimulation pulses appearing at those electrodes. Block 175 alsoincludes the drivers for the electrodes, with a Digital-to-AnalogConverter (DAC) 82 being responsive to the stimulation program to supplythe specified electrodes currents. Notice that the electrodes E1-E16 areconnected to off-chip decoupling capacitors C1-CN prior to connection tothe corresponding electrodes 106 on the leads 102 and 104 (FIG. 1A);such decoupling capacitors C1-CN prevent direct DC current injectionfrom the IPG into the patient, which is advisable for safety, butotherwise such decoupling capacitors don't significantly affectstimulation performance.

Internal controller 160 acts as the master controller for all othercircuit blocks. Specifically, each of the other circuit blocks containsset-up and status registers (not shown). The set-up registers arewritten to by the controller 160 upon initialization to configure andenable each block. Each circuit block can then write pertinent data atits status register, which can in turn be read by the controller 160 asnecessary. Aside from such control imposed by the master controller 160,the circuit blocks outside of the controller 160 can employ simple statemachines to manage their operation, which state machines are enabled andmodified via the set-up registers.

As can be seen in FIG. 3A, the IC 200 contains several externalterminals 202 (e.g., pins, bond pads, solder bumps, etc.), such as thosenecessary to connect the power source 26, to connect the coils 18, 13,to connect the external memory 66, and to connect the stimulationelectrodes. Other external terminals 202 are dedicated to the varioussignals that comprise the centralized bus 190 to allow this bus tocommunicate with other devices outside of the IC 200.

The various signals comprising the bus 190 can be seen in FIG. 3B, whichalso discloses the protocol for communications on the bus. As shown, thecentralized bus 190 comprises a clock signal (CLK) for synchronization,time-multiplexed address and data signals (A/Dx); an address latchenable signal (ALE); an active-low write enable signal (*W/E), and anactive-low read enable signal (*R/E). The frequency for the clocksignal, CLK, can be in the range of 32 kHz to 1 MHz, which is generallyslow for a computerized protocol, but is suitably fast for operation ofthe IPG, which typically provides stimulation pulses on the order oftens of microseconds to milliseconds. As shown, the protocol uses afairly simple address-before-data scheme in which an address is followedby pertinent data for that address. To discern between address and data,the address latch enable signal (ALE) is active only upon the issuanceof an address, which allows the address to be latched upon the fallingedge of the clock. Whether the data corresponding to a particularaddress is to be written or read on the next falling clock edge dependson the assertion of the write and read enable signals (*W/E; *R/E).

The nature of this protocol means that all functional blocks coupled tothe centralized bus 190 are designated an address, or more likely, arange of addresses. For example, the address for a data register holdingthe value for the compliance voltage (in A/D block 74) might beADDR[3401], while the address for the magnitude and duration ofstimulation to be provided by electrode E6 (in stimulation circuitryblock 175) may be ADDR[7655] and ADDR[7656] respectively. To assist thevarious functional blocks in recognizing pertinent addresses, and toensure each block's ability to function in accordance with thecentralized bus 190's protocol, each block contains bus interfacecircuitry 215. As this bus interface circuitry was described in detailin the above-incorporated '497 application, such details are notrepeated here.

As noted in the '497 application, when the circuit blocks are coupledvia the bus 190 and communicate using the protocol, it becomes arelatively simple matter to make changes to any particular block to fixcircuit errors, and/or to upgrade the IC 200 for use in next-generationIPGs. Additionally, because the bus 190 is provided outside of the IC200, it is easy to modify or add functionality to the IPG 100 outside ofthe IC 200. For example, and as shown in FIG. 3C, more memory 300(preferably, nonvolatile memory) can be added. Or, systemic control canbe added outside of the IC 200, for example, via an externalmicrocontroller 240. Should an external microcontroller 240 be used inconjunction with the IC 200, the '497 application discusses manners inwhich control is arbitrated between the microcontroller 204 and theinternal controller 160 in the IC 200. Again, such details are notrepeated here.

In another off-chip extension of the architecture noted in the '497application, and as particularly pertinent to the present disclosure,another IC 200′ can be added which is similarly constructed to the firstIC 200. This allows the IPG 100 in which the IC 200 and 200′ are placedto provide 32 stimulation electrodes, i.e., 16 each from both of theICs. In other words, the capacity of the IPG can be increased by “daisychaining” a plurality of stimulation ICs together. In such anembodiment, the internal controller 160 in one of the ICs 200 or 200′can be inactivated so only one controller 160 acts as the mastercontroller for the system.

Practical concerns arising from the use of electrode drivers in twodifferent ICs 200 are addressed in this disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A and 1B show an implantable pulse generator (IPG), and themanner in which an electrode array is coupled to the IPG in accordancewith the prior art.

FIG. 2 illustrates an IPG, an external controller, and an externalcharger in accordance with the prior art.

FIGS. 3A-3C illustrate aspects of an IPG architecture using acentralized bus, as disclosed in U.S. Patent Application Publication2008/0319497.

FIGS. 4A-4C illustrate aspects of an improved architecture for an IPGutilizing a plurality of electrode-driver ICs.

FIG. 5 illustrates circuitry, timing, and bus commands forsimultaneously providing a situation pulse at electrodes on different ofthe electrode-driver ICss in the improved architecture.

FIG. 6 illustrates sample and hold circuitry in the master IC, andillustrates bus commands for monitoring a voltage at an electrode at themaster IC using the sample and hold circuitry.

FIGS. 7A and 7B illustrate sample and hold circuitry in the master andslave ICs, and illustrates bus commands for monitoring a voltage at anelectrode at the slave IC using the sample and hold circuitry at themaster IC.

FIGS. 8A and 8B illustrate sample and hold circuitry in the master andslave ICs, and illustrates bus commands for monitoring a resistancebetween an electrodes at the slave IC and an electrode at the master ICusing the sample and hold circuitry at the master IC.

FIGS. 9A-9C illustrate sample and hold circuitry in the master and slaveICs, and illustrates bus commands for monitoring a resistance betweentwo electrodes at the slave IC using the sample and hold circuitry atthe master IC.

FIG. 10 illustrates aspects of the improved architecture relating to theclocking circuitry, and shows circuitry for disabling clocking at theslave IC as a power saving measure.

DETAILED DESCRIPTION

FIG. 4A shows an improved system 290 for an IPG 295 having an improvedarchitecture in which two electrode driver ICs 300 and 300′ are daisychained to double the electrode capacity in the IPG, i.e., from 16 to 32electrodes as shown. (The metallic case 30 of the IPG 295 can alsocomprise an electrode, but this is not shown for simplicity). In thisexample, one of the ICs 300 acts as a master, while the other 300′ actsas a slave, as will be explained in further detail below. Both ICs 300and 300′ are connected to a bus 297, which is similar to the busdescribed in the Background, but which includes additional controlsignals for selecting either of the two chips: CS_m, which comprises achip select for the master 300, and CS_s, which comprises a chip selectfor the slave 300′. Note that while the clock signal (CLK; FIG. 3B)remains important in the communication protocol, it is not included asone of the bus signals shared by all ICs in the system; clockingcircuitry in the system 290 is discussed further with reference to FIG.10 below.

Also connected to the bus is a microcontroller 305, which provides forcontrol of functions in the system 290 not handled by various circuitblocks in the ICs 300 and 300′, and otherwise generally acts as thesystem's master. For example, bus communications are ultimatelycontrolled by the microcontroller 305, which controls the issuance ofclocks needed for the communication protocol as explained further below,and which also issues the bus control signals (e.g., ALE, W/E*, R/E* inFIG. 3B). In another example, microcontroller 305 schedules when the IPG295 is to listen for telemetry from the external controller 12 (FIG. 2).See, e.g., U.S. Pat. No. 7,725,194, discussing this issue in furtherdetail. Microcontroller 305 also connects to a memory (Flash EPROM) chip307 in the system 290, which can hold the operating software for thesystem, and which can also act as a free space to log data in thesystem, e.g., data to be reported to the external controller 12 foranalysis and/or feedback to the patient.

In the embodiment shown, each of the ICs 300 and 300′, which will beexplained in detail shortly, are fabricated identically, even thoughthey are destined to act as master or slave in the system. Fabricatingonly a single electrode-driver IC is a great convenience, as themanufacturer does not have to different fabricate, track, and test,separate master and slave ICs for the system 290. Whether any given ICoperates as a master or slave in the system depends on how it isconnected to the remainder of the system 297, i.e., such chips are bondprogrammable. As shown in FIG. 4A, each IC has an input, M/S, which whenprovided a voltage informs the IC that it is the master 300, and whennot informs the IC that it is a slave 300′. This can be accomplished byconnecting the M/S input to a particular node on the IPG's PCB, such asVbat, the battery 26 voltage (FIG. 2), in the case of the master 300, orground (GND) in the case of the slave 300′. When a given IC understandsthat it is operating as a slave, it deactivates certain of its circuitblocks, as will be explained later.

Also shown in FIG. 4A are certain off-bus signals 195. These signals andtheir functions will be discussed in more detail later.

FIG. 4B shows the circuit blocks in either of the identical master 300or slave 300′ ICs. Many of these circuit blocks were discussed earlierin conjunction with the Background (see FIG. 3A), and so discussion ofthose blocks is not repeated here. Of particular note and new to FIG. 4Bare the sample and hold block 310, the compliance voltage (V+) generatorblock 320, the clock generator block 330, and a master/slave (M/S)controller 350. As with other circuit blocks on the IC, these circuitblocks contain interface circuitry 215 to allow them to communicate on,and be controlled by, the bus 297 in accordance with the protocoldiscussed earlier.

Sample and hold circuitry block 310 will be explained in detail later,but for now merely note that it contains circuitry for sampling andholding various analog voltages comprising the analog bus 192, includingthe electrode voltages. Once sample and hold block 310 has operated toresolve a particular voltage, it can be sent to the A/D block 74, whereit is digitized and disseminated via the communication bus 297 towherever in the system 290 it is needed for analysis. Signals IN1, IN2,OUT1 and OUT2 are used to route various analog signals between the twoICs 300 and 300′, as explained later.

V+ generator block 320 generates a compliance voltage, V+, which is usedby the current sources (DAC 82) in the stimulation circuitry block 175.It does so by voltage boosting the battery voltage, Vbat, to anappropriate V+ voltage used to power the current sources to an optimallevel, which optimal level can be deduced in part by monitoring theelectrode voltages during stimulation. See, e.g., U.S. Pat. Nos.7,872,884; 7,444,181; 7,539,538, for further details concerning thegeneration of compliance voltage V+ in an IPG.

Clock generator 330 generates the communications clocks used by thecommunications protocol on the bus 297. As noted earlier though, aclocking signal does not comprise part of the communication bus 297.Operation of the clock generator 330 will be explained in detail withrespect to FIG. 10.

Master/slave controller 350 receives the M/S input mentioned earlier,and interprets that input to inform the IC whether it is operating and aslave or master, and this is illustrated further in FIG. 4C. In FIG. 4C,the master and slave 300 and 300′ are shown as connected, includingbus-based 297 and off-bus 195 connections. Note that correspondingcircuit blocks in the slave IC 300′ are denoted by a prime symbol. Asdescribed earlier, the M/S inputs to the master/slave controllers 350differ (high; low) depending on which IC is acting as the master orslave. In the slave IC 300′ the master/slave controller 350′ interpretsthe grounded input, and informs certain other circuit blocks that theyare to be disabled in favor of use of those same circuit blocks in themaster IC 300. Specifically, the charging/protection block 64′,telemetry block 62′ A/D block 74′, V+ generator 320′, interruptcontroller 173′, and the internal controller 160′ are all disabled inthe slave IC 300′, and are shown in dotted lines to illustrate thatfact. Disabling of each of these circuit blocks can occur in accordancewith the state machines operating at each block upon receipt ofinformation from the master/slave controller 350, and such disabling canbe effected by disabling the bus drivers and bus receivers operating inthe interface circuitry in the affected blocks (see theabove-incorporated '497 application). Still operative in the slave IC300′ however are the stimulation circuitry block 175′ coupled to theelectrodes, the sample and hold circuit block 310′, the clock generationcircuitry 330′, and the master/slave controller 350′ itself.

With regard to the various off-chip signals 195, note that thecompliance voltage, V+, generated in the master IC 300 is routed to theslave IC 300′ for use in the slave's stimulation circuitry block 175′.The changing and telemetry coils 18 and 13 are only coupled to themaster IC 300 where their corresponding blocks 64 and 62 are active. Thebattery 26 (FIG. 2) voltage, Vbat, is shared by both ICs 300 and 300′(as well as the microcontroller 305), and other components internal tothe IPG 100. An external crystal oscillator 340 is coupled to the CLKINinput only on the master IC 300.

FIGS. 5-9C illustrate the operation of the sample and hold circuitryblocks 310 and 310′ active in both ICs 300 and 300′, and furtherillustrate how off-bus signal 195 carried between IN1, IN2, OUT1, andOUT2 are used in the system to monitor analog signals in both ICs.Additionally, these Figures provide examples of commands used on the bus297 to provide the desired stimulation and monitoring functions.

FIG. 5 shows an example of the stimulation that can be provided by thesystem 290, and in particular shows the provision of a monophasic pulsetrain to a patient's tissue, which is represented in FIG. 5 as aresistance, R. (System 290 can similarly provide biphasic pulses as oneskilled in the art understands, and as is explained in theabove-incorporated concurrent application. However, monophasic pulsesare illustrated for simplicity). In the example shown, electrode E1 fromthe master IC 300 is used as the anode which sources a current+I for apulse duration of t_(D), and electrode E11 from the slave IC 300 is usedas the cathode for the sink of that current (−I). The pulses at bothelectrodes have a periodicity of t_(P).

The currents (+I, −I) appearing at each electrode are set byDigital-to-Analog Converters, or DACs 82, which comprises part of thestimulation circuitry 175. As is known, the DACs 82 provide the desiredcurrent based on digital control signals (<P>, <N>), which controlsignals specify the amount that a reference current, Iref, is to beamplified. A DAC used as the anodic source is called a PDAC, while a DACused as the cathodic sink is called a NDAC. See, e.g., U.S. PatentApplication Publication 2007/0038250, for further details concerning thespecifics of PDAC and NDAC circuitry useable in a system such as system290. Because electrodes E1 and E17 in this example are respectivelydriven by the master and slave ICs 300 and 300′, the stimulationcircuitry 175 and 175′ and DACs 82 and 82′ at each are implicated inproviding the desired pulses.

Prior to the delivery of the desired pulses, the stimulation circuitry175 in each of the ICs is loaded with the appropriate stimulationparameters. These parameters (magnitude and polarity of current) arecommunicated via bus 297 from the microcontroller 305 based upon thetherapy program that has been established for the patient, which therapyprogram can be changed from time to time by the external controller 12(FIG. 2). As noted earlier, the bus-based communication protocol allowsfor these parameters to be sent to various addresses designated for thevarious circuit blocks. For example, the magnitude for the current atelectrode E1 may be stored at ADDRi in the stimulation circuitry 175,while the polarity is stored at ADDRj. These parameters can be loadedserially for each electrode, and in advance of the issuance of thepulse. Thus, and referring to the command table in FIG. 5, it is seenthat these parameters are loaded for each of electrodes E1 and E11before t1—the first pulse in the train.

When ICs 300 and 300′ are daisy chained as disclosed, it is important toproperly differentiate between active circuit blocks in each of the twoICs. For example, and as discussed earlier with respect to FIG. 4C, thestimulation circuitry block 175′, the sample and hold circuit block310′, and the clock generation circuitry 330′, are active in both ICs,and share the same addresses. Differentiation between the two ICs occursby use of the chip select signals, CS_m and CS_s. Thus, as shown in FIG.5, although E1 and E11 are associated with the same addresses ADDRi andADDRj, the chip select signal is used to differentiate them and toprogram the stimulation circuitry 175 in the appropriate ICs. Thus, thestimulation parameters for electrode E1 are written to ADDRi and j withCS_m asserted, indicating programming of the stimulation circuitry 175in the master IC 300 (i.e., that which drives electrodes E1-E16). Bycontrast, the stimulation parameters for electrode E17 are written toADDRi and j with CS_s asserted, indicating programming of thestimulation circuitry 175 in the slave IC 300′ (i.e., that which driveselectrode E17-E32).

It is important to synchronize therapeutic pulses occurring atelectrodes in each of the ICs 300 and 300′. Thus, after the stimulationparameters have been loaded, it must be ensured that the stimulationpulses will issue from the various electrodes on the ICs 300 and 300′ atthe same time. For example, if the anodic pulse issues from electrode E1issues slightly prior to the issuance of the cathodic pulse at electrodeE17, charge will be injected into the patient's tissue during thatslight time with no return path. Likewise, if the anodic pulse ceasesfrom electrode E1 issues slightly prior to cessation of the cathodicpulse at electrode E17, charge will be depleted from the patient'stissue during that slight time. Such charge build up can impede therapy,or could injure the patient.

To ensure simultaneous issuance of the pulses, bus-based communicationis used in system 290 to simultaneously trigger the issuance of bothpulses. As shown in FIG. 5, at time t1, i.e., after the stimulationparameters for each electrode have been loaded to each of the ICs 300and 300′, a stimulation enable command is issued on the bus with both ofthe chip select signals asserted (i.e., CS_m=CS_s=1). This allows bothof stimulation circuitries 175 and 175′ to receive the stimulationenable signal at the same time, and to provide the pre-storedstimulation parameters to their DACs 82 and 82′, thus producing thedesired currents simultaneously. In this example, the stimulation enablecommand is sent to ADDRk. If not pre-loaded as a stimulation parameter,the pulse duration t_(D) can be included with the simulation enablecommand.

Another important issue, and one addressed in the improved system 290,deals with monitoring various voltages in the ICs 300 and 300′, such asthe electrode voltages. Assessing such voltages is beneficial for manyreasons. Knowing the voltages present at the electrodes duringstimulation can be useful in setting the compliance voltage, V+, at theV+ generator 320 (FIG. 4B) to an appropriate and power-efficientmagnitude. See, e.g., U.S. Pat. No. 7,444,181. Also, knowing theelectrode voltages allows the resistance between the electrodes, R, tobe calculated, which is useful for a variety of reasons.

Voltage monitoring in any given IC 300 is performed by the sample andhold circuitry 310, which is shown in FIG. 6. As shown, sample and holdcircuitry 310 comprises two multiplexers (MUX1 ad MUX2), either of whichcan select from a plurality of signals comprising the analog bus 192(FIG. 4B), such as the electrode voltages (E1-E16), the voltage on themetallic case 30, which is usually grounded, the battery voltage (Vbat),the compliance voltage (V+), or ground (GND). Each MUX receives acontrol signal to choose one of these various inputs. (In reality, thecontrol signal for each MUX may comprise a plurality of digital controlsignals. For example, if the MUX is capable of selecting from 16different inputs, then four control signals may be used).

FIG. 6 shows the example of measuring the voltage on electrode E1 duringstimulation. MUX1 chooses this electrode via control signal(s) SEL_E1,which allows the voltage on E1 to pass to OUT1. MUX2 chooses ground(GND) as a reference (e.g., 0 Volts), which is passed to OUT2. As shownin the command table in FIG. 6, both of these selections can be made viathe bus 297 at an appropriate time during the duration of the pulse(i.e., during t_(D)), where it is assumed that MUX1 is accessible viaADDRr and MUX2 via ADDRs. Because the voltage, V_(E1), being monitoredis already present at the master IC 300, the chip select signals are setaccordingly (CS_m=1, CS_s=0). Intervening between these outputs OUT1 andOUT2 is holding circuitry 312. Holding circuitry 312 can comprise anycircuitry suitable for holding and stabilizing the voltage to bemeasured, and as illustrated comprises a single capacitor, C. However,more sophisticated holding circuitry 312 can be used, such as thecircuitry disclosed in above-incorporated concurrent application.Alternatively, and particularly when DC voltages are being monitored,holding circuitry 312 can be dispensed with altogether.

The voltages on each plate of the capacitor are sent to a differentialamplifier 314, which after a settling period outputs the differencebetween the two, which in this case is V_(E1)−0 or V_(E1). This analogvoltage can then be sent to A/D block 74 (FIG. 4B), where it isdigitized. This value can then be read (at ADDRt in A/D block 74), andused elsewhere in the system, such as the V+ generator 320 (FIG. 4B).

When the voltage being measured comes from the slave IC 300′ instead ofthe master 300, the interconnection between the two sample and holdcircuitries 310 and 310′ is implicated, as shown in FIG. 7A. Suchinterconnection involves the use of off-bus signals IN1, IN2, OUT1, andOUT2, which were briefly mentioned earlier, and which are shown at ahigh level in FIG. 4A. As shown there, and in further detail in FIG. 7A,note that OUT1 from MUX1 on the slave IC 300′ is sent to IN1 in themaster IC 300, which in turn is sent as an input to both of the masterIC's MUXes. OUT2 from MUX2 on the slave IC 300′ is sent to IN2 in themaster IC 300, which again is sent as in input to both of the masterIC's MUXes. This interconnection of the sample and hold circuitries 310and 310′ operates to pull any relevant voltages to be monitored from thesample and hold circuitry 310′ in the slave IC 300′ to the sample andhold circuitry 310 in the master IC 300. Because the holding circuitry312′ and differential amplifier 314′ are not used in the slave IC 300′,they are illustrated in dotted lines in FIG. 7A. This interconnection ofthe sample and hold circuitries 310 and 310′ also result in inputs IN1and IN2 to the MUXes in the slave not being used, and the outputs OUT1and OUT2 in the master not being used, which again is represented bydotted lines. Routing on the PCB between the two IC 300 and 300′establishes the proper connections between OUT1 and OUT2 from the slaveIC 300′, and IN1 and IN2 in the master IC 300.

FIG. 7A illustrates monitoring the voltage on electrode E17 (that is, E1from the slave IC 300′), with the command table for doing the sameprovided in FIG. 7B. E17 is selected at MUX1 via its MUX address ADDRr,but with the slave IC selected (CS_s=1, CS_m=0). Because no othervoltage is of interest is pulled from the slave IC, MUX2 in the slaveselects no value. The output from MUX1, OUT1, is routed off chip toinput IN1 on the master IC 300, where it is selected at MUX1. Again,MUX1 is addressed at ADDRr, but this time with the master selected(CS_m=1, CS_s=0), which routes the voltage on E17 to the top plate ofthe capacitor in sample and hold circuit 312. Because in this example itis desired to know the absolute value of the voltage on E17, MUX2(address ADDRs) in the master selects the ground input, which routesground to the bottom plate of the capacitor. After allowing forsettling, differential amplifier 314 outputs the difference between itstwo inputs, V_(E17), which can then be passed to A/D block 74 forinterpretation as discussed before.

Monitoring the voltages at electrodes during stimulation is furtheruseful in calculating the resistance between electrodes, and examplesusing sample and hold circuitry 310 to do so are shown in FIGS. 8A-9C.FIGS. 8A and 8B continue the example of FIG. 5, but with the goal ofdetermining the resistance R between anode electrode E1 and cathodeelectrode E17. Such a resistance measurement requires assessment of thevoltages at both electrodes, V_(E1) and V_(E17). Here, only one of thevoltages (E17) needs to be pulled from the slave IC 300′ to the sampleand hold circuit 310 in the master IC 300. Because this electrode is thecathode, MUX2 is selected at the slave (ADDRs; CS_s=1; CS_m=0) to pullthis voltage to IN2 at the master IC 300. Anode electrode E1 is selectedby MUX1 at the master (ADDRr; CS_m=1; CS_s=0), and IN2 (E17 as pulledfrom the slave IC 300′) is selected by MUX2 at the master (ADDRs;CS_m=1; CS_s=0). The resulting voltage difference across the capacitorin holding circuitry 312 (V_(E1)-V_(E17)) is then reflected at theoutput of the differential amplifier 314. Because the current used toform these voltages is known (I), the resistance between the electrodescan be calculated in the IPG 295 as (V_(E1)-V_(E17))/I, with perhapssome adjustment to the calculation to account for small voltage dropsacross the decoupling capacitor, a point discussed in further detail inthe concurrent application.

FIGS. 9A-9C illustrate a more complicated case in which the resistancebetween anode electrode E32 and cathode electrode E17 are measured asshown in FIG. 9A. Here, both electrodes appearing in the slave IC 300′.Because of this, and as shown in FIG. 9B, the voltages for each of theseelectrodes are selected by MUX1 and MUX2 respectively in the slave,which pass them to the master IC 300 at inputs IN1 and IN2 respectively.The MUXes in the master sample and hold circuit 310 then choose theseinputs IN1 and IN2, placing the voltage of the anode (E32) on top of thecapacitor, and the voltage of cathode E17 on the both of the capacitorin the holding circuit 314. As before, the differential amplifier 314outputs the difference between the two (V_(E32)-V_(E17)), and theresistance between then can then be calculated using the known current,I.

Another significant issue addressed by improved system 290 involvesclocking, the details of which are shown in FIG. 10. Each of the devices(the microcontroller 305, the master IC 300, and the slave IC 300′)requires clocks to function. Each requires clocks to run their internalfunctions (“internal clocks”), as well as clocks to communicate on thebus 297 (“bus clocks”) according to the protocol described earlier (seeFIG. 3B). For communications on the bus 297 to be orderly, the busclocks should be synchronized at each of the devices.

However, there may be times during operation of system 290 when certaininternal or bus clocks are not needed. For example, when either themaster IC 300 or slave IC 300′ are performing an internal operation(e.g., providing stimulation) not requiring bus communications, busclocking is not required, and only the devices' internal clocks need tobe active. In another example, there may be periods of time when onlythe master IC 300 needs to be clocked. Consider the use of the system290 when only electrodes on the master IC 300 (E1-E16) are required forpatient therapy. During such periods of time, the slave IC 300′ may notneed to be clocked at all, as that device will neither need tocommunicate on the bus 297 nor perform any internal operations. Inshort, not all of the devices in the system 290 will require theirinternal or bus clocks to be active at a given time. When a particularclock is not required, it is desirable to disable it: significant powercan only be drawn during clock transitions, and so shutting downunnecessary clocks in the system save powers, which power is usuallylimited by the capacity of the battery 26 (FIG. 4B). The disclosedsystem therefore uses discrete bus and internal clocks in the system,which clocks can be selectively enabled or disabled as needed. Becauseindependent control of particular clocks is desired, a master clocksignal is not distributed by the bus 297, as will be made clear below.

FIG. 10 shows the various internal and bus clocks. Microcontroller 305uses clock signal BUSCLKμc to communicate on the bus 297, and uses clockCLKμc as its internal clock. As noted earlier, the bus protocol canoperate relatively slowly, and so BUSCLKμc can be relatively slow, e.g.,on the order of 100 kHz. By comparison, the internal clock signal CLKμcthat runs the internal functions of the microcontroller 305 can berelatively fast, on the order of several MHz or more, or even GHzs ifmodern day processors are used.

Master IC 300 uses clock signal BUSCLKm to communicate on the bus 297,and uses clock signal CLKm as its internal clock. Likewise, slave IC300′ uses clock signal BUSCLKs to communicate on the bus 297, and usesclock signal CLKs as its internal clock. As shown, each of the busclocks BUSCLKm and BUSCLKs are provided to the various functional blocks(Block1, Block 2) in their respective ICs, and more specifically to thebus interface circuitry 215 of such bocks. These functional blocks cancomprise any of the functional blocks described earlier with respect toFIG. 4B. The internal clocks CLKm and CLKs are used by the ICs to runinternal functions. Although not shown, one important use for internalclocks is to provide reference clocking for the provision of stimulationto the electrodes, which can occur independently of bus communications(or more accurately, after bus communications have already provided thestimulation parameters).

FIG. 10 further illustrates how these various clocks are generated inthe system 290, and specially shows the clock generation circuitryblocks 330 and 330′ operating in the master and slave ICs 300 and 300′respectively. Communication on the bus 297 is controlled bymicrocontroller 305, which issues a control signal, BUSCLKen, whencommunications on the bus 297 are required, i.e., when themicrocontroller 305 needs to send or receive data to or from either ofthe master or slave ICs 300 or 300′. This control signal BUSCLKen issent to the corresponding input of the master IC 300, but not to thecorresponding input of the slave IC 300′ by virtue of off-chip routingas shown in FIGS. 4A and 10.

Also received at the master IC 300 at input CLKIN (but not at the slaveIC 300′) is an initial clock signal, CLKi, generated off chip by acrystal oscillator 340. As will be seen, all of the internal and busclock signals (expect for the microcontroller's internal clock CLKμc)are generated from (and hence synchronized with) CLKi. It is assumed inFIG. 10 that CLKi from the crystal oscillator 340 is of a properfrequency, which again may be on the order of 100 kHz. However, thesignal from the crystal oscillator 340 may also be processed or bufferedwithin the clock generator circuitry 330 to achieve an appropriate clockCLKi (not shown). Although use of a crystal oscillator 340 is shown,other types of clocking circuitries (e.g., ring oscillators) could alsobe used. Moreover, although CLKi is shown in FIG. 10 as generatedoff-chip, an on-chip clock generator could also be used. In this case,the M/S controllers 350 and 350′ could be used to enable the on-chipclock generator in the master IC 300, but to disable that same generatorin the slave IC 300′. CLKi is generally always running, provided thebattery 26 in the IPG has not depleted.

CLKi is ANDed with control signal BUSCLKen at AND gate 360 to producethe communication clock BUSCLKμC for the microcontroller 305 at outputCLKOUT1. This results in BUSCLKμC being active (and synchronized withCLKi) when BUSCLKen is asserted, and grounded when BUSCLKen is notasserted. Note that the corresponding input for BUSCLKen is grounded inthe slave IC 300′, which grounds the output to AND gate 360′,inactivating output CLKOUT1 on the slave, as represented by the dottedlines.

Once BUSCLKμC is active and the microcontroller 305 can communicate onthe bus 297, the microcontroller 305, acting as the system master, canassess which clocks in the master and slave ICs 300 and 300′ need to beenabled. Depending on that assessment, the microcontroller 305 can writevia the bus 297 to registers 380 and 380′ in the master and slaverespectively. Specifically shown are three register bits, E, B, and I,which stand for “external,” “bus,” and “internal.” B and B′ compriseenable signals for generation of the bus clocks BUSCLKm and BUSCLKsrespectively. I and I′ comprise enable signals for generation of theinternal clocks CLKm and CLKs respectively. (Each of the master andslave can have more than one internal clock, and hence more than oneinternal clock register value, but only one such clock in shown in FIG.10 for simplicity). E comprises an enable signal for porting a clockexternal to the IC 300 (CLKext) to a downstream slave IC such as 300′.Register values E, B, and I are each accessible at their own addresses(e.g., ADDRx, ADDRy, and ADDRz), and each of these addresses can beselectively written to by the microcontroller 305 using the chip selectsignals CS_m and CS_s discussed earlier.

Starting with the master IC 300, notice that the bus interface circuitry215 receives the initial clock, CLKi. Because the microcontroller 305'sbus clock BUSCLKμc is synchronous with CLKi, this enables registervalues E, B, and I in register 380 to be set by the microcontroller 305even though the microcontroller has not yet enabled the remainder of themaster IC 300 to fully communicate on the bus 297. Should master IC 300require its bus clock BUSCLKm to communicate with the microcontroller305, register value B would be set high by the microcontroller 305.Should master IC 300 require its internal clock CLKm, register value Iwould be set. When not needed, these registers would be set low. Suchregister values may default to a high state upon initialization. LikeBUSCLKμc, BUSCLKm and CLKm are generated from CLKi using AND gates 365and 366 respectively, with register values B and I enabling thoseclocks. As noted earlier, BUSCLKm is sent to the interface circuitry 215in all other functional blocks within the master IC 300, thus enablingfull communication between the microcontroller 305 and all functions inthe master IC 300 when BUSCLKm is enabled.

It should be noted that registers B and I are not strictly required inthe master IC 300 in all useful embodiments of system 297. Instead, theinitial clock signal CLKi can be used directly as the master bus clockBUSCLKm and as the master internal clock CLKm. However, doing so wouldhowever prevent the microcontroller 305 from selectively disabling thoseclock signals at useful times during operation of the system.

The slave IC 300′ only receives a clock issued by the master IC 300,namely clock signal CLKext. This occurs when the microcontroller 305sets the external register E in the master IC 300. Like BUSCLKμc,BUSCLKm, and CLKm, CLKext is formed by ANDing an enable signal (in thiscase, E) with CLKi, and therefore CLKext is synchronized with all ofthese other clocks. As shown in FIG. 10, CLKext is output from themaster IC 300 and is received at the slave IC 300′ at the CLKIN input inthe master, effectively taking CLKi's place in the slave. If operationof the slave IC 300′ is not required—if slave IC 300′ require neither abus nor internal clock—E is set low, which will ground CLKext anddisable the clock signal to the slave IC 300′. Without receipt of aclock signal, the slave IC 300′ will draw only nominal power.

If the slave IC 300′ is to be operational, E is set high at the masterIC 300 and CLKext is enabled. Thereafter, the microcontroller 305 canset the various registers B′ and I′ in the slave IC 300′ depending onwhether a bus clock (BUSCLKs) and/or internal clock (CLKs) is requiredat a given point in time. (Corresponding register E′ in the slave IC300′ is irrelevant in the embodiment shown, as the system 290 containsno further downstream slave ICs. As such, the effect of register E′ inthe slave IC 300′ has been depicted with dotted lines). Writing toregisters B′ and I′ occurs at the same addressees (ADDRy and ADDRz) asregisters B and I in the master, but with CS_s=1. The status of B′ andI′ respectively determine whether clocks BUSCLKs and CLKs are enabled,and in the slave these enable signals are ANDed with CLKext at AND gates365′ and 366′ respectively. BUSCLKs is sent to the interface circuitry215 in all other functional blocks within the slave IC 300′. However,this does not necessarily mean that all circuit blocks in the slave willbe operative, or that full communications with the slave IC 300′ can behad. By way of review, certain circuit blocks in the slave IC 300′ willhave their interface circuitry 215 disabled by the M/S controller 350′(see FIG. 4C), and thus will be unable to communicate on the bus 297,despite receipt of BUSCLKs.

Because CLKext is ultimately derived from CLKi in the master, clocksBUSCLKs and CLKs are also synchronized with CLKi. To summarize, all ofclocks BUSCLKμc, BUSCLKm, BUSCLKs, CLKm and CLKs are synchronized withCLKi, and all will have the same frequency (again, about 100 kHz). Anysmall delays between these clocks caused by routing or gating areirrelevant given the relatively low operating speed of CLKi.Synchronization is particularly important as concerns the bus clocks,which need to be synchronized for reliable communications on the bus297. However, synchronization of the internal clocks is important aswell to ensure synchronicity in the internal operations between themaster and slave, such as during the provision of a stimulation pulse.

It should be noted again that registers B′ and I′ are not strictlyrequired in the slave IC 300′ in all useful embodiments of system 297.Instead, the external clock signal CLKext can be used directly as theslave bus clock BUSCLKs and as the slave internal clock CLKs. However,doing so would however prevent the microcontroller 305 from selectivelydisabling those clock signals at useful times during operation of thesystem.

To summarize, by setting register values E, B, I, B′, and I′, themicrocontroller 305 can selectively control the various bus and internalclocks signals needed by the master and slave IC 300′. Importantly, atperiods in time when the slave IC 300′ is not needed by the system, itsclocks can be completely disabled (by setting E low in the master), orpartially (by setting E high in the master, but by setting either orboth of B′ and I′ low).

Although FIG. 10 depicts only a single master and slave IC, note thatthe technique is extendible to control the clock of additionaldownstream slave ICs.

Although particular embodiments of the present invention have been shownand described, it should be understood that the above discussion is notintended to limit the present invention to these embodiments. It will beobvious to those skilled in the art that various changes andmodifications may be made without departing from the spirit and scope ofthe present invention. Thus, the present invention is intended to coveralternatives, modifications, and equivalents that may fall within thespirit and scope of the present invention as defined by the claims.

What is claimed is:
 1. An implantable stimulator device, comprising: afirst integrated circuit comprising a plurality of first electrodesconfigured to provide stimulation pulses to a patient's tissue via atleast one lead; a second integrated circuit comprising a plurality ofsecond electrodes configured to provide stimulation pulses to thepatient's tissue via the at least one lead; and control circuitryconfigured to program any of the first and second electrodes as an anodefor the stimulation pulses and configured to program a different any ofthe first and second electrodes as a cathode for the stimulation pulses,wherein the second integrated circuit comprises measurement circuitryconfigured to select and receive a voltage at the anode and a voltage atthe cathode.
 2. The device of claim 1, wherein the control circuitryprograms the anode and the cathode via a bus connecting the controlcircuitry and the first and second integrated circuits.
 3. The device ofclaim 2, further comprising at least one connection for routing thevoltage at the anode or the voltage at the cathode from one of the firstelectrodes to the measurement circuitry in the second integratedcircuit.
 4. The device of claim 1, wherein the control circuitrycomprises a microcontroller integrated circuit.
 5. The device of claim1, wherein the first electrodes are configured to provide stimulationpulses to a patient's tissue via a first lead, and wherein the secondelectrodes are configured to provide stimulation pulses to a patient'stissue via a second lead.
 6. The device of claim 1, wherein themeasurement circuitry is configured to select and receive the voltage atthe anode and the voltage at the cathode during one of the stimulationpulses.
 7. The device of claim 6, wherein the measurement circuitry isconfigured to produce a difference between the voltage at the anode andthe voltage at the cathode.
 8. The device of claim 7, wherein themeasurement circuitry comprises an amplifier for outputting thedifference.
 9. The device of claim 1, wherein the measurement circuitryis configured to select and receive the voltage at the anode during afirst stimulation pulse, and wherein the measurement circuitry selectsand receives the voltage at the cathode during a second stimulationpulse.
 10. The device of claim 9, wherein the measurement circuitry isfurther configured to select and receive at least one DC voltage. 11.The device of claim 9, wherein the at least one DC voltage comprises oneor more of a ground voltage, a voltage of a battery in the device, and acompliance voltage for powering stimulation circuitry in the first andsecond integrated circuits.
 12. The device of claim 10, wherein themeasurement circuitry is configured to produce a first differencebetween the voltage at the anode and one of the at least one DC voltagesduring the first stimulation pulse, and wherein the measurementcircuitry produces a second difference between the voltage at thecathode and one of the at least one DC voltages during the secondstimulation pulse.
 13. The device of claim 12, wherein the measurementcircuitry comprises an amplifier for outputting the first and seconddifferences.
 14. The device of claim 1, wherein the first and secondintegrated circuits are identical in fabrication.
 15. The device ofclaim 1, wherein the second integrated circuit comprises a master andwherein the first integrated circuit comprises a slave.
 16. The deviceof claim 1, wherein the measurement circuitry comprises a firstmultiplexer, wherein the first multiplexer comprises a plurality offirst inputs each coupled to one of the second electrodes, and a secondinput configured to receive any of the first electrodes programmed asthe anode or the cathode.
 17. The device of claim 16, wherein the firstmultiplexer comprises a third input configured to receive any of thefirst electrodes programmed as the other of the anode or the cathode.18. The device of claim 16, wherein the measurement circuitry comprisesa second multiplexer, wherein the second multiplexer comprises aplurality of first inputs each coupled to one of the second electrodes,and a second input configured to receive any of the first electrodesprogrammed as the anode or the cathode.
 19. The device of claim 18,wherein the first and second multiplexers each comprise a third inputconfigured to receive any of the first electrodes programmed as theother of the anode or the cathode.